qx.Class.define("caraffa.Funciones",
{
	statics :
	{
		rpcRemoto: null,
		rpcLocal: null,
		remoto : null,
		rpcChanger: function() {
			var rpcChanger = new qx.io.remote.Rpc();
			rpcChanger.setTimeout(10000);
			rpcChanger.setUrl("services/");
			rpcChanger.setServiceName("rpcChanger");
			try
			{
				var result = rpcChanger.callSync("hacer");
				if (result)
				{
					caraffa.Funciones.rpcRemoto = result.rpcRemoto;
					caraffa.Funciones.rpcLocal = result.rpcLocal;
					caraffa.Funciones.remoto = result.remoto;
				}
				else{
				}
			}
			catch (ex)
			{
				alert("Se produjo un error en el Sistema:" + ex);
			}
			//alert(caraffa.Funciones.rpcAvellaneda);
			//alert(caraffa.Funciones.rpcCaraffa);
			
		},
		
		Login : function (title, usuario, functionClose, context)
		{
			var winLogin = new qx.ui.window.Window(title);
			winLogin.addListener("resize", winLogin.center, winLogin);
			winLogin.set({width:350, height:140, showMaximize:false, allowMaximize:false, showMinimize:false, showClose:false, modal:true, movable:false, resizable:false, showStatusbar:false});
			winLogin.setLayout(new qx.ui.layout.VBox(10));
			
			var txtUsuario = new qx.ui.form.ow.TextField("Usuario:");
			var txpPassword = new qx.ui.form.ow.PassField("Password:");
			var lblMSJ = new qx.ui.basic.Label("").set({rich:true, textAlign:'center', width:360});
			var btnIngresar = new qx.ui.form.Button("Validar Datos");
			
			if ((usuario != "") && (usuario != null) && (usuario != undefined))
			{
				txtUsuario.setValue(usuario);
				txtUsuario.setEnabled(false);
			}
			
			txtUsuario.getText().addListener("keydown", function (e)
			{
				if (e.getKeyIdentifier() === 'Enter')
					txpPassword.getText().tabFocus();
			}, this);
			
			txpPassword.getText().addListener("keydown", function (e)
			{
				if (e.getKeyIdentifier() === 'Enter')
					btnIngresar.execute();
			}, this);
			
			winLogin.add(txtUsuario);
			winLogin.add(txpPassword);
			winLogin.add(lblMSJ);
			winLogin.add(btnIngresar);
			if ((usuario != "") && (usuario != null) && (usuario != undefined))
			{
				var btnSalir = new qx.ui.form.Button("Salir e Ingresar con otro Usuario");
				btnSalir.addListener("execute", function ()
				{
					location.reload(true);
				});
				winLogin.add(btnSalir);
			}
			
			btnIngresar.addListener("execute", function (e)
			{
				var rpc = new qx.io.remote.Rpc();
				rpc.setTimeout(10000);
				rpc.setUrl("services/");
				rpc.setServiceName("login");
				var params = new Object();
				params.usuario = txtUsuario.getValue();
				params.password = txpPassword.getValue();
				try
				{
					var result = rpc.callSync("Login", params);
					if (result)
					{
						this._perfilUsuario = result;
						lblMSJ.setValue("");
						winLogin.close();
					}
					else
					{
						lblMSJ.setValue("<font color='red'>Usuario y/o Password incorrecta!</font>");
						if ((usuario != "") && (usuario != null) && (usuario != undefined))
						{
							txpPassword.focus();
						}
						else
						{
							txtUsuario.focus();
						}
					}
				}
				catch (ex)
				{
					lblMSJ.setValue("<font color='red'>Se produjo un error en el Sistema!</font>");
					alert(ex);
				}
			}, this);

			if ((functionClose != "") && (functionClose != null) && (functionClose != undefined))
			{
				if (context)
					winLogin.addListener("close", functionClose, context);
				else
					winLogin.addListener("close", functionClose);
			}
			
			winLogin.open();
			if ((usuario != "") && (usuario != null) && (usuario != undefined))
			{
				txpPassword.focus();
			}
			else
			{
				txtUsuario.focus();
			}
		},
		ValidarFecha : function (fecha)
		{
        	var texto=String(fecha);
        	var f=texto.split("/");
        	if (f.length!=3)
        	{
                return false
        	}
        	else if (f[2]<1900 || f[2]>9999)
        	{
				return false
        	}
        	else if (f[1]<1 || f[1]>12)
        	{
				return false
        	}
        	else
        	{
                var bisiesto=false;
                if (parseFloat(f[2]/400)==parseInt(f[2]/400))
                {
					bisiesto=true;
                }
                else if (parseFloat(f[2]/4)==parseInt(f[2]/4))
                {
					if (parseFloat(f[2]/100)!=parseInt(f[2]/100))
					{
						bisiesto=true;
					}
                }
                var diavalido=false;
                if (f[1]==1 || f[1]==3 || f[1]==5 || f[1]==7 || f[1]==8 || f[1]==10 || f[1]==12)
                {
					diavalido=(f[0]>=1 && f[0]<=31)
                }
                else if (f[1]==4 || f[1]==6 || f[1]==9 || f[1]==11)
                {
					diavalido=(f[0]>=1 && f[0]<=30)
                }
                else if (f[1]==2)
                {
					diavalido=(f[0]>=1 && f[0]<=((bisiesto)?29:28))
                }
                if (diavalido)
                {
                    var ffinal=new Date();
                    ffinal.setFullYear(f[2]);
                    ffinal.setDate(f[0]);
                    ffinal.setMonth(parseInt(f[1])-1);
					return true;
                }
                else
                {
					return false
                }
        	}
		},
		getPerfilUsuario : function ()
		{
			var rpc = new qx.io.remote.Rpc();
			rpc.setTimeout(10000);
			rpc.setUrl("services/");
			rpc.setServiceName("login");
			try
			{
				return(rpc.callSync("get_perfil_usuario"));
			}
			catch (ex)
			{
				alert(ex);
				return false;
			}
		}
	}
});